#!/bin/bash
# laskenta                                                              $((((RANDOM<<15)|RANDOM)*40/1073741824))   2^30 
unset matriisi                                                             # $((40*($RANDOM$RANDOM)/4294967296))   2^32
for n in $(echo "for (i = 1; i < 100000; i += 1)  i" | bc) ; do  (( matriisi[$(((((((RANDOM<<30)|(RANDOM<<15)))|RANDOM))*40/35184372088832)) ]++ )); done
# graafinen esitys:
minimi=$( echo ${matriisi[*]} | awk 'BEGIN {minimi=9e99} { if ($1<minimi) minimi=$1 } END { print minimi }' )
for x in {1..39}; do echo $x" "$( echo "100*(${matriisi[$x]}-$minimi)/$minimi" | bc -l ); done | gnuplot -p -e 'set terminal pngcairo size 350,262 enhanced font "Verdana,10"; set output "satunnaisluvut_31bit.png"; set ylabel "poikkeama %"; set xlabel "satunnaisluku"; plot "/dev/stdin" with lines'
echo -e ${matriisi[@]/%/\\n} | awk '{sum+=$1; sumsq+=$1*$1} END {print "keskipoikkeama=" sqrt(sumsq/NR - (sum/NR)^2)}'
